.. _Infinity: ===================== Infinity Functions ===================== A list of all Infinity_XXX() lua functions found by scanning game executables and the various lua and menu files. "I've tried to compile a list of all Infinity_XXX() function I could find by scanning game executables and the various lua and menu files, but there are still many unknown or unclear parameters and return values. There are no function descriptions either, but many function names are (more or less) self-explanatory." --`argent77 `_ +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | **Function** | **Description** | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ActivateInventory` | Opens and activates the inventory screen and updates stats for the character | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ActivateRecord` | Opens and activates the level up dialog | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_AddDLC` | Add DLC to game | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_AddDLCContent` | Add DLC content to game | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_CanCloudSave` | Determines if cloud saves are supported by the platform | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_CanLevelUp` | Determines if the specified character can level up | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ChangeOption` | Set the value of an option in a panel | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_CheckItemIdentify` | Checks lore skill for identifying an item in an inventory slot | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ClickItem` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ClickObjectInWorld` | Clicks the ground at the location of the object in the world | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ClickScreen` | Clicks the center of the viewscreen | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ClickWorldAt` | Clicks the ground at the specified coordinates, relative to the viewscreen | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_CloseEngine` | Close active engine - unknown | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_DestroyAnimation` | Remove UI items that match the specified template name | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_DisplayString` | Displays to the screen the passed content as a string | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_DoFile` | Loads and executes the lua file specified | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_EnterEdit` | Enters new text into a UI edit control | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_FetchString` | Returns the string for the string reference id specified | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_FindItemWithBam` | Find a UI control that has the specified bam resource reference | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_FindItemWithText` | Find a UI control that has the specified text | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_FindUIItemByName` | Find a UI item by the name specified | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_FocusTextEdit` | Set the keyboard focus to the specified text edit contol | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetArea` | Returns the bounding rectangle (area) for the specified UI Control name | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetClockTicks` | Returns the clock tick count in milliseconds | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetContainerItemDescription` | Updates the description of an item from a specified slot in a container | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetContentHeight` | Returns the height of the text content in a UI control | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetCurrentGroundPage` | Returns the current page number of the ground inventory slots | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetCurrentMovie` | Returns the current movie | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetCurrentScreenName` | Returns current menu name | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetFilesOfType` | Returns a list of files that match the specified file extension | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetFrameCounter` | Returns frame counter | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetGameTicks` | Returns game ticks | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetGroundItemDescription` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetGroupItemDescription` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetInCutsceneMode` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetINIString` | Returns a string containing an ini section key value | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetINIValue` | Returns an integer value containing an ini section key value | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetListHeight` | Returns the height of the sepcified UI List control | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetMaxChapterPage` | Returns the chapter number that the game campaign is at currently | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetMaxGroundPage` | Returns maximum ground pages | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetMenuArea` | Returns the bounding rectangle (area) for the specified UI Menu name | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetMenuItemByName` | Returns the UI menu item that has the specified name | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetMousePosition` | Returns mouse position | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetNumCharacters` | Returns total number of characters currently in the party | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetOffset` | Get the position of a menu on the screen | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetOption` | Get the value of an option in a panel | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetPasswordRequired` | Updates the passwordReq lua variable with the password requirement | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetPortraitTooltip` | Returns a string containing the tooltip for a specified portrait index | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetScreenSize` | Returns the width and height of the screen | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetScriptVarInt` | Returns the value of a script variable as an integer | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetScrollIdentifyEnabled` | Determines if the specified item requires identification, and can be identified via a scroll | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetSelectedCharacterName` | Returns a string containing the currently selected character's name | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetSpellIdentifyEnabled` | Determines if the specified item requires identification, and can be identified via a spell | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetTimeString` | Returns a formatted date and time string | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetTransitionInProgress` | Returns the transition value | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GetUseButtonText` | Returns "Use x" button text of an item name for an item specified | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_GooglePlaySignedIn` | Determines if signed into Google Play | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_HighlightJournalButton` | Unknown purpose, returns false | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_HoverMouseOver` | Moves where your mouse cursor is in the game world | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_HoverMouseOverObject` | Activate AI script file for object that mouse is hovering over | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_InstanceAnimation` | Creates a temporary single instance animation of a bam | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_IsItemEnabled` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_IsMenuOnStack` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_IsPlayerMoving` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_JoinMultiplayerGame` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_LaunchURL` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_LevelUp` | Opens level up dialog | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_Log` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_LookAtObjectInWorld` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_LuaConsoleInput` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnAddUserEntry` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnCharacterImportItemSelect` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnCharacterItemSelect` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnEditUserEntry` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnGroundPage` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnPortraitDblClick` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnPortraitItemSelect` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnPortraitLClick` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnPortraitRClick` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnRemoveUserEntry` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnRest` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnScriptItemSelect` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnScrollIdentify` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnSoundItemSelect` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnSpellIdentify` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OnUseButtonClick` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_OpenInventoryContainer` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_PlayMovie` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_PlaySound` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_PopMenu` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_PressKeyboardButton` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_PushMenu` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_RandomNumber` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_RemoveINIEntry` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_RequestMultiplayerGameDetails` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ScaleToText` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ScrollLists` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SelectDialogueOption` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SelectItemAbility` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SelectListItem` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SendChatMessage` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetArea` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetBackground` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetCloudEnabled` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetGooglePlaySigninState` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetHairColor` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetHighlightColors` | Set a color or color gradient for UI elements in the options dialogs | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetINIValue` | Sets a value of an ini section key | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetKey` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetLanguage` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetMajorColor` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetMinorColor` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetOffset` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetOverlay` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetScreenSize` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetScrollTop` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetSkinColor` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SetToken` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_ShutdownGame` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SignInOutButtonEnabled` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SplitItemStack` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_StartItemCapture` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_StartKeybind` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_StopItemCapture` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_StopKeybind` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_StopMovie` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SwapSlot` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SwapWithAppearance` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_SwapWithPortrait` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_TakeScreenshot` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_TextEditHasFocus` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_TransitionMenu` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_UpdateCharacterRecordExportPanel` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_UpdateCloudSaveState` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_UpdateInventoryRequesterPanel` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_UpdateLuaStats` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_UpdateStoreMainPanel` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_UpdateStoreRequesterPanel` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ | :ref:`Infinity_WriteINILine` | | +---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ ---- .. _Infinity_ActivateInventory: Infinity_ActivateInventory ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Opens and activates the inventory screen and updates stats for the character :: Infinity_ActivateInventory() **Notes** Calls :ref:`CScreenInventory\:\:ResetGroundPile` and :ref:`CScreenInventory\:\:UpdateLua`, which in turn calls :ref:`CGameSprite\:\:UpdateLuaStats` Updates ability scores, stats, skills, equiptment, paperdoll and items for display in the inventory screen for the current character **Example** :: Infinity_ActivateInventory() ---- .. _Infinity_ActivateRecord: Infinity_ActivateRecord ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Opens and activates the level up dialog :: Infinity_ActivateRecord(index) **Parameters** * ``integer`` *index* - 0 based index of the character to level up **Notes** Calls :ref:`CScreenCharacter\:\:OnLevelUpButtonClick` to open and activate the level up dialog **Example** Enables the level up button if character 5 (index 4) can level up, and on clicking the enabled button, the ``action`` opens the level up dialog via :ref:`Infinity_ActivateRecord`: :: button { enabled "Infinity_CanLevelUp(4)" bam GUIOSW area 0 382 44 44 sequence 0 action "Infinity_ActivateRecord(4)" pulse 1 } ---- .. _Infinity_AddDLC: Infinity_AddDLC ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Add DLC to game :: Infinity_AddDLC(name,image,title,description,ios_name,purchased,android_name) **Parameters** * ``string`` *name* - text or ResRef ? * ``string`` *image* - DLC image - ResRef to image ? * ``integer`` *title* - long pointer to string or StrRef ? * ``integer`` *description* - long pointer to string or StrRef ? * ``string`` *ios_name* - text or ResRef ? * ``integer`` *purchased* - date time stamp ? * ``string`` *android_name* - text or ResRef ? **Notes** Fills in a :ref:`CDLC` structure from the parameters passed and calls the DLCInsert function, which is defined as: :: void __cdecl DLCInsert(CDLC toInsert); Only available on ios or android builds ? See also :ref:`Infinity_AddDLCContent` **Example** No known example ---- .. _Infinity_AddDLCContent: Infinity_AddDLCContent ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Add DLC content to game :: Infinity_AddDLCContent(name,dlc_id) **Parameters** * ``string`` *name* - text or ResRef ? * ``integer`` *dlc_id* - dlc id **Notes** Fills in a :ref:`CDLC_Content` structure from the parameters passed and calls the DLCInsertContent function, which is defined as: :: void __cdecl DLCInsertContent(CDLC_Content toInsert); Only available on ios or android builds ? See also :ref:`Infinity_AddDLC` **Example** No known example ---- .. _Infinity_CanCloudSave: Infinity_CanCloudSave ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines if cloud saves are supported by the platform, for example Steam. :: Infinity_CanCloudSave() **Return Value** Returns a ``boolean`` value: ``true`` if cloud saves are supported on the platform or ``false`` otherwise **Notes** Calls CPlatform\:\:IsPlatformServiceConnected and reads :ref:`CBaldurChitin`.m_cChitin => :ref:`CChitin`.cSteam => CSteam.m_isSteamConnected **Example** :: if Infinity_CanCloudSave() == false and (toggleTitles[1][3] == 60 or toggleTitles[2][3] == 60) then removeOptionFromList(toggleTitles,60) end ---- .. _Infinity_CanLevelUp: Infinity_CanLevelUp ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines if the specified character can level up - has enough experience points to qualify for a level up. :: Infinity_CanLevelUp(index) **Parameters** * ``integer`` *index* - 0 based index of the character to check if level up is available for **Return Value** Returns a ``boolean`` value: ``true`` if character can level up or ``false`` otherwise **Notes** **Example** Enables the level up button if character 5 (index 4) can level up, and on clicking the enabled button, the ``action`` opens the level up dialog via :ref:`Infinity_ActivateRecord`: :: button { enabled "Infinity_CanLevelUp(4)" bam GUIOSW area 0 382 44 44 sequence 0 action "Infinity_ActivateRecord(4)" pulse 1 } ---- .. _Infinity_ChangeOption: Infinity_ChangeOption ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set the value of an option in a panel :: Infinity_ChangeOption(option_id,value,panel_id) **Parameters** * ``integer`` *option_id* - id of the option to set * ``integer`` *value* - value to set the option to * ``integer`` *panel_id* - id of the panel **Notes** Calls CGameOptions\:\:SetOption **Example** Get the value of option id ``1`` in panel id ``8`` (``panelID`` = ``8``) to a variable ``ttDelaySLDR`` and then set option id ``1`` in panel id ``8`` (``panelID`` = ``8``) to the value of the ``ttDelaySLDR`` variable :: panelID = 8 ttDelaySLDR = Infinity_GetOption(1, panelID) Infinity_ChangeOption( 1, ttDelaySLDR, panelID) See also :ref:`Infinity_GetOption` ---- .. _Infinity_CheckItemIdentify: Infinity_CheckItemIdentify ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Checks lore skill for identifying an item in an inventory slot :: Infinity_CheckItemIdentify(nSlot) **Parameters** * ``integer`` *nSlot* - slot number that item occupies **Notes** Calls the :ref:`CScreenInventory\:\:CheckItemIdentify` method. If character has a high enough lore skill value then the item specified in the inventory slot *nSlot* is identified, the item's name and description is updated in the inventory slot and in any quick slot buttons that it currently occupies. **Example** :: function showItemDescriptionInventory(slotName) if(characters[id].equipment[slotName].empty ~= 0) then return end selectedSlot = slotName Infinity_CheckItemIdentify(characters[id].equipment[slotName].id) showItemDescription(characters[id].equipment[slotName].item, 0) end ---- .. _Infinity_ClickItem: Infinity_ClickItem ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_ClickItem(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_ClickObjectInWorld: Infinity_ClickObjectInWorld ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Clicks the ground at the location of the object in the world :: Infinity_ClickObjectInWorld(ScriptName) **Parameters** * ``string`` *ScriptName* - name of the script (for the object) to click the ground at **Return Value** None **Notes** **Example** Click the ground at ``MINSC.BS``: :: Infinity_ClickObjectInWorld("Minsc") ---- .. _Infinity_ClickScreen: Infinity_ClickScreen ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Clicks the center of the viewscreen :: Infinity_ClickScreen() **Parameters** None **Return Value** None **Example** :: Infinity_ClickScreen() ---- .. _Infinity_ClickWorldAt: Infinity_ClickWorldAt ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Clicks the ground at the specified coordinates, relative to the viewscreen :: Infinity_ClickWorldAt(x,y) **Parameters** * ``integer`` *x* - x coordinate to click world at * ``integer`` *y* - y coordinate to click world at **Return Value** None **Notes** "Appears entirely broken. It seems to always click the top-left of the current viewscreen" --`Bubb `_ If your mouse cursor is not in the world (such as on the ActionBar or on a SideBar), it clicks on the world coordinates at ``0``, ``0`` If you don't include :ref:`Infinity_HoverMouseOver` before :ref:`Infinity_ClickWorldAt`, it will click at world coordinates ``0``, ``0`` by assuming your cursor is over the interface. You can force a click in the game world like so: :: Infinity_HoverMouseOver(x,y) Infinity_ClickWorldAt(x,y) **Example** :: Infinity_ClickWorldAt(100,200) ---- .. _Infinity_CloseEngine: Infinity_CloseEngine ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Close active engine - unknown :: Infinity_CloseEngine() **Parameters** None **Return Value** None **Notes** * Reads :ref:`CBaldurChitin`.m_pEngineJournal => CScreenJournal* * Pushes :ref:`CBaldurChitin`.m_pEngineWorld => CScreenWorld* * Reads :ref:`CScreenJournal`.m_cBaldurEngine => :ref:`CBaldurEngine`.m_cWarp => :ref:`CWarp`.m_cObject => :ref:`CObject`.vfptr * Calls :ref:`CObject`.vfptr + ``0x28`` = :ref:`CWarp\:\:EngineDeactivated` ? Unknown as to the purpose of this function - best leave it alone. **Example** No known examples ---- .. _Infinity_DestroyAnimation: Infinity_DestroyAnimation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Remove and free memory for the UI items that match the template name and instance id specified :: Infinity_DestroyAnimation(instanceId,templateName) **Parameters** * ``integer`` *instanceId* - instance id * ``string`` *templateName* - name of the template to remove **Return Value** None **Notes** Calls uiRemoveFromTemplate function, defined as: :: void __cdecl uiRemoveFromTemplate(CString sTemplate, int id); **Example** No known examples ---- .. _Infinity_DisplayString: Infinity_DisplayString ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Displays to the screen the passed content as a string :: Infinity_DisplayString(...) **Parameters** * *...* - special, see notes **Return Value** None **Notes** Similar to printf function, this function can accept a variable amount of parameters. Each parameter passed is evaluated, converted to a string if necessary and concatenated to form the final string to display on the screen. Parameters that are: * Integers - converted to a string. * Variables - evaluated and the value of the variable is taken and converted to a string. * Functions - evaluated and the result used in other nested functions and/or evaluated to a string. Paramters supports simple math and other lua functions. You can inline concatenate strings and variables by using ``..`` between the string and variable and/or the next parameter, for example the ``class`` variable is concatenated to the string: :: Infinity_DisplayString("WARNING: unrecognized class argument: " .. class) **Examples** Display to screen using inline concatenate using 2 parameters, both using a string and a variable to evaluate: :: Infinity_DisplayString("config: "..config..", state: "..state) Display to screen the result of simple math: (result is displayed as ``20000001``): :: Infinity_DisplayString(20000000 + 1) ---- .. _Infinity_DoFile: Infinity_DoFile ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Loads and executes the lua file specified :: Infinity_DoFile(filename) **Parameters** * *filename* - full filepath to lua filename to load and process **Notes** The ``includes.lua`` file used by the game engine uses :ref:`Infinity_DoFile` to setup the lua environement for the ``UI.MENU`` and provides support for running any lua file that begins with ``M_`` found in the games ``override`` folder. The ``M_`` lua files are designated for modders. **Example** Load and execute the lua file: ``MyLuaFile.lua``: :: Infinity_DoFile("MyLuaFile") ---- .. _Infinity_EnterEdit: Infinity_EnterEdit ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Enters new text into a UI edit control :: Infinity_EnterEdit(newText,oldText) **Parameters** * ``string`` *newText* - string containing the new text content * ``string`` *oldText* - string containing the old text content to replace **Return Value** None **Notes** Searches through all UI edit controls looking for one that has a string containing *oldText* and replaces it with the *newText* string. Reads :ref:`uiItem`.edit => :ref:`uiItem::edit>`.var to compare against *oldText*, if it matches then it is replaced with *newText* Not tested or verified **Example** :: Infinity_EnterEdit("New text to replace","This is a test") ---- .. _Infinity_FetchString: Infinity_FetchString ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the string for the string reference id specified :: Infinity_FetchString(StrRef) **Parameters** * ``integer`` *StrRef* - the string reference (StrRef) id to fetch **Return Value** Returns the string for the StrRef id specified in the *StrRef* parameter **Notes** Calls the :ref:`CTlkTable\:\:Fetch` method to fetch the StrRef string into a :ref:`STR_RES` structure and pushes :ref:`STR_RES`.szText => CString.m_pchData onto the lua stack. **Example** Returns the string for StrRef ``38848`` (*"Greetings, good customer. A pearl to you."*): pearl = Infinity_FetchString(38848) ---- .. _Infinity_FindItemWithBam: Infinity_FindItemWithBam ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Find a UI control that has the specified bam resource reference :: Infinity_FindItemWithBam(BamResRef,Sequence) **Parameters** * ``string`` - *BamResRef* - the resource reference (ResRef) to search for that matches an existing UI control's bam ResRef * ``integer`` - *Sequence* - the bam sequence to match as well (optional) **Return Value** Returns userdata version of the item (a pointer to the :ref:`uiItem` structure of the matched UI control or a lua ``NIL``) See notes for further details. **Notes** Searches through all UI controls from the main stack menu and linked list of UI controls: * Reads :ref:`uiMenu`.items for an array of pointers. Each pointer in the array is a :ref:`uiItem` structure. * Reads offset ``0x98``: :ref:`uiItem`.bam => :ref:`uiItem\:\:bam>`.resref * If the :ref:`uiItem\:\:bam>`.resref field is ``0`` then the process looks for next uiItem in the linked list to process: reads :ref:`uiItem`.next field (offset ``0x22C``) and repeats the same step above by reading the :ref:`uiItem\:\:bam>`.resref field. If the :ref:`uiItem`.next field is ``0`` then the next pointer in the array of pointers from :ref:`uiMenu`.items is read and repeats the same step above by reading the :ref:`uiItem\:\:bam>`.resref field. * If the :ref:`uiItem\:\:bam>`.resref field is not ``0`` then it converts the field value (a :ref:`uiVariant` type field) to a string. This string is a ResRef. This is then used in comparison with the *BamResRef* ResRef string parameter. * If the ResRef strings compared match, and the *Sequence* parameter is **not** specified, then the pointer the :ref:`uiItem` structure of the currently matched UI control, is pushed onto the lua stack and the function exits. * If the ResRef strings compared match, and the *Sequence* parameter is specified and matches the value in the :ref:`uiItem::bam>`.sequence field, then the pointer to the :ref:`uiItem` structure of the currently matched UI control, is pushed onto the lua stack and the function exits. * If the ResRef strings compared match, and the *Sequence* parameter does **not** match the value in the :ref:`uiItem::bam>`.sequence field, then the :ref:`uiItem`.slot => :ref:`uiItem::slot>`.icon field (a :ref:`uiVariant` type) is read, the value converted to a ResRef string and compared to the *BamResRef* string parameter. If this comparison matches then the pointer to the :ref:`uiItem` structure of the currently matched UI control, is pushed onto the lua stack and the function exits. * If the ResRef strings compared do **not** match, then the :ref:`uiItem`.slot => :ref:`uiItem::slot>`.icon field (a :ref:`uiVariant` type) is read, the value converted to a ResRef string and compared to the *BamResRef* string parameter. If this comparison matches then the pointer to the :ref:`uiItem` structure of the currently matched UI control, is pushed onto the lua stack and the function exits. * If the ResRef strings compared do **not** match, and there is a valid :ref:`uiItem`.next then the search and comparison process continues. * If the ResRef strings compared do **not** match, and there is a no valid :ref:`uiItem`.next, but there is another pointer in array of pointers found at :ref:`uiMenu`.items then the search and comparison process continues. * If the ResRef strings compared do **not** match and there are no more :ref:`uiItem` (via :ref:`uiItem`.next or :ref:`uiMenu`.items) then a lua nil is pushed to the lua stack and the function exits. It is unknown how to exactly use this function as there are no known examples. **Example** Find the UI control that uses sequence ``3`` of ``GUIOSTLM.BAM`` (*which is the reform party button*) :: reformpartycontrol = Infinity_FindItemWithBam("GUIOSTLM",3) ---- .. _Infinity_FindItemWithText: Infinity_FindItemWithText ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Find a UI control that has the specified text :: Infinity_FindItemWithText(OriginalText) **Parameters** * ``string`` *OriginalText* - the text to search for that matches an existing UI control's text **Return Value** Returns userdata version of the item (a pointer to the :ref:`uiItem` structure of the matched UI control or a lua ``NIL``) See notes for further details. **Notes** Searches through all UI controls from the main stack menu and linked list of UI controls: * Reads :ref:`uiMenu`.items for an array of pointers. Each pointer in the array is a :ref:`uiItem` structure. * Reads 140 bytes of the :ref:`uiItem` structure into a local buffer and checks offset ``0x70`` of the local buffer, which corresponds to the :ref:`uiItem`.text => :ref:`uiItem\:\:text>`.text field. * If the :ref:`uiItem\:\:text>`.text field is ``0`` then the process looks for next uiItem in the linked list to process: reads :ref:`uiItem`.next field (offset ``0x22C``) and repeats the same step above by reading the :ref:`uiItem\:\:text>`.text field. If the :ref:`uiItem`.next field is ``0`` then the next pointer in the array of pointers from :ref:`uiMenu`.items is read and repeats the same step above by reading the :ref:`uiItem\:\:text>`.text field. * If the :ref:`uiItem\:\:text>`.text field is not ``0`` then it converts the field value (a :ref:`uiVariant` type field) to an integer. This integer is a string reference (StrRef) id from the TLK table. The (StrRef) string is loaded into a buffer and this is then used in comparison with the *OriginalText* string parameter. * If the strings compared match, then the pointer to the :ref:`uiItem` structure of the currently matched UI control, is pushed onto the lua stack and the function exits. * If the strings compared do **not** match, and there is a valid :ref:`uiItem`.next then the search and comparison process continues. * If the strings compared do **not** match, and there is a no valid :ref:`uiItem`.next, but there is another pointer in array of pointers found at :ref:`uiMenu`.items then the search and comparison process continues. * If the strings compared do **not** match and there are no more :ref:`uiItem` (via :ref:`uiItem`.next or :ref:`uiMenu`.items) then a lua nil is pushed to the lua stack and the function exits. It is unknown how to exactly use this function as there are no known examples. **Example** :: --] Find the text control that has "Hello" --[ hellocontrol = Infinity_FindItemWithText("Hello") ---- .. _Infinity_FindUIItemByName: Infinity_FindUIItemByName ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Find a UI item by the name specified :: Infinity_FindUIItemByName(UIItemName) **Parameters** * ``string`` *UIItemName* - name of the UI item to find **Return Value** Returns a pointer to a UI item **Notes** Returns the pointer to the item stored in the ``nameToItem`` array, which is defined internally in the game executable as: :: nameToItem = {} Items are stored in the array like so: :: nameToItem['%s'] = nameToItemPointer The ``nameToItem`` array can be accessed directly in ``UI.MENU`` or other lua files. For example, :ref:`Infinity_ClickItem` takes a menuItem userdata type and clicks the center of its area: :: Infinity_ClickItem(nameToItem["whaterNameHere"]) **Example** Get the inventory menu item: :: inventory = Infinity_FindUIItemByName("INVENTORY") Get the button control for the peasant room to rent at an inn: :: selectedRoom = Infinity_FindUIItemByName('BUTTON_room_peasant') ---- .. _Infinity_FocusTextEdit: Infinity_FocusTextEdit ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set the keyboard focus to the specified text edit contol, so that typing will occur in the text edit control. :: Infinity_FocusTextEdit(element_name) **Parameters** * ``string`` *element_name* - name of the text edit control to set the keyboard focus to **Notes** Calls the uiFocusTextEdit function **Example** Partial example of the CLUAConsole cheat text edit control being displayed and the focus moving to it so that typing occurs in that text edit control: :: name 'cheatConsole' align center bottom ignoreEsc onOpen " toolbarTop = 50 Infinity_PushMenu('WORLD_MESSAGES') Infinity_PushMenu('cheatMenu', 0, 0); Infinity_FocusTextEdit('luaEditArea'); luaEdit = trim(luaEdit) loadLuaHistory() " ---- .. _Infinity_GetArea: Infinity_GetArea ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the bounding rectangle (area) for the specified UI Control name :: Infinity_GetArea(element_name) **Parameters** * ``string`` *element_name* - name of the UI Control to return the bounding rectangle for **Return Value** Returns as ``integer`` values: x, y, w, h - x coordinate, y coordinate, width and height of rectangle **Notes** **Example** With a UI Label control named ``messagesRect``: :: label { name 'messagesRect' area 0 111 863 142 rectangle 4 } To get the area of the ``messagesRect`` label control: :: local x,y,w,h = Infinity_GetArea('messagesRect') ---- .. _Infinity_GetClockTicks: Infinity_GetClockTicks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the clock tick count in milliseconds :: Infinity_GetClockTicks() **Return Value** Returns an ``integer`` value of the clock tick in milliseconds **Notes** Calls the SDL_GetTicks function, coverts it to a lua number and pushes it onto the lua stack Can be used to measure the time elapsed between calls to :ref:`Infinity_GetClockTicks` **Example** Get tick count and store it to a variable: :: chatboxScrollTimeLast = Infinity_GetClockTicks() Later on, get tick count and use previously stored tick count value (``chatboxScrollTimeLast) to measure time elapsed, and store it to a ``dT`` variable: :: local dT = Infinity_GetClockTicks() - chatboxScrollTimeLast chatboxScrollTimeLast = Infinity_GetClockTicks() The ``dT`` variable now contains the elapsed time since :ref:`Infinity_GetClockTicks` was last called. ---- .. _Infinity_GetContainerItemDescription: Infinity_GetContainerItemDescription ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Updates the description and usability text of an item from a specified slot in a container :: Infinity_GetContainerItemDescription(nSlotNum) **Parameters** * ``integer`` *nSlotNum* - slot number to return the item description and and usability text for **Return Value** Special, see notes **Notes** Calls the following class methods: :ref:`CGameContainer\:\:GetItem`, :ref:`CItem\:\:GetUsabilityText` and :ref:`CItem\:\:GetDescription` Updates an existing array named ``loot``, which is defined in ``UI.MENU`` as: :: loot = { containerItems = {}, groupItems = {}, groundItems = {} } The ``loot`` array is updated with the description and usability text of the item occupying the slot *nSlotNum* in the container. **Example** Update the item description using :ref:`Infinity_GetContainerItemDescription` and then access the ``loot`` array via the internal ``UI.MENU`` function ``showItemDescription``: :: function showContainerItemDescription(index) local idxScrolled = index + worldScreen:GetTopContainerItem() if(loot.containerItems[idxScrolled] == nil or loot.containerItems[idxScrolled].item == nil) then return nil end Infinity_GetContainerItemDescription(idxScrolled) showItemDescription(loot.containerItems[idxScrolled].item, 2) end The ``showItemDescription`` function, stores some of the ``loot`` array entries into another array ``itemDesc``. ``showItemDescription`` is defined as: :: itemDesc = {} function showItemDescription(item, mode) itemDesc.item = item itemDesc.mode = mode Infinity_PushMenu('ITEM_DESCRIPTION',0,0) end The ``ITEM_DESCRIPTION`` menu, which uses the values in the ``itemDesc`` array is defined as: :: menu { name 'ITEM_DESCRIPTION' align center center modal label { area 0 0 864 710 mosaic GUIINVHI } label { area 81 11 700 44 text "ITEM_TITLE" text style title } label { area 402 66 52 52 icon lua "itemDesc.item.icon" } label { area 57 170 295 40 text lua "itemDesc.item.name" text align center center text style "label" text color '5' } text { area 356 180 430 353 text lua "itemDesc.item.description" scrollbar 'GUISCRC' text style "normal_parchment" } label { area 66 210 280 327 bam lua "itemDesc.item.descPicture" sequence 0 frame 0 align center center } button { bam GUIOSTUL sequence 6 area 57 638 234 44 enabled "itemDescLeftButtonEnabled()" text lua "itemDescLeftButtonText()" text style "button" action " itemDescLeftButtonAction() " } button { bam GUIOSTUM sequence 6 area 326 638 204 44 text "DONE_BUTTON" text style "button" action " Infinity_PopMenu(); " } button { bam GUIOSTUR sequence 6 area 572 638 234 44 enabled "itemDescRightButtonEnabled()" text lua "itemDescRightButtonText()" text style "button" action " itemDescRightButtonAction() " } } Note the use of ``itemDesc.item.name`` and ``itemDesc.item.description`` etc ---- .. _Infinity_GetContentHeight: Infinity_GetContentHeight ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the height of the text content in a UI control :: Infinity_GetContentHeight(font,width,textcontent,point,indent,useFontZoom) **Parameters** * ``string`` *font* - string containing resource reference (ResRef) of font * ``integer`` *width* - width of the UI control hosting the content * ``string`` *textcontent* - string containing the text content * ``integer`` *point* - font size * ``integer`` *indent* - a boolean value if indented ``1``, or ``0`` otherwise * ``integer`` *useFontZoom* - boolean value if using font zoom ``1``, or ``0`` otherwise **Return Value** Returns an ``integer`` of the calculated content height **Notes** Calculates the height of the text content in a UI control, taking into account the font used, the font size, word wrapping for the width of the UI control, indentation and/or font zooming. You should account for the width of the scrollbar when specifying the *width* parameter *useFontZoom* is used for font scaling based on the font size (the *point* parameter). If *useFontZoom* is ``0``, the text content (the *textcontent* parameter) will always appear at the defined font size, if *useFontZoom* is ``1`` then font scaling will occur for the text content. **Example** :: --Calculate running total of dialog content height local x,y,w,h = Infinity_GetArea("worldPlayerDialogChoicesList") w = w - 18 --account for scrollbar influence on width local delta = Infinity_GetContentHeight(styles.normal.font, w, text, styles.normal.point, 1, styles.normal.useFontZoom) --1 for indent. chatboxContentHeight = chatboxContentHeight + delta Note: styles are defined in the ``BGEE.LUA`` file ---- .. _Infinity_GetCurrentGroundPage: Infinity_GetCurrentGroundPage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the current page number of the ground inventory slots :: Infinity_GetCurrentGroundPage() **Return Value** Returns an ``integer`` representing the page number of the ground inventory slots **Notes** A ground page is a series of inventory slots representing ground items available to pick up or empty slots for items to be dropped into. Ground pages are used to scroll through the groupings of those ground based inventory slots. See also :ref:`Infinity_GetMaxGroundPage` and :ref:`Infinity_GetGroundItemDescription` Calls the :ref:`CScreenInventory\:\:GetCurrentGroundPage` method **Example** :: curPage = Infinity_GetCurrentGroundPage() ---- .. _Infinity_GetCurrentMovie: Infinity_GetCurrentMovie ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the current movie :: Infinity_GetCurrentMovie() **Parameters** None **Return Value** Returns a ``string`` containing the resource reference (ResRef) of the current movie file (WebM file format) **Notes** Reads CBaldurChitin.m_pEngineProjector => CBaldurProjector.m_pMovie => CResWebM.CRes Compares active engine (CWarp) Pushes lua string onto stack or lua ``nil`` Note: more research required. **Example** :: curMovie = Infinity_GetCurrentMovie() ---- .. _Infinity_GetCurrentScreenName: Infinity_GetCurrentScreenName ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns current menu name :: Infinity_GetCurrentScreenName() **Parameters** None **Return Value** Returns a ``string`` of the current menu name, or an empty string if no menu active **Notes** Uses getMenuStackTop and getStackMenu functions, and if successful, reads the value at :ref:`uiMenu`.name and pushes this value to the lua stack as a lua string. **Examples** Get the current menu name: :: curMenuName = Infinity_GetCurrentScreenName() Sets the button to clickable only if the current menu equals ``CHARGEN`` :: button { area 770 552 204 44 text "IMPORT_BUTTON" text style "button" bam GUIOSTUM clickable lua "Infinity_GetCurrentScreenName() == 'CHARGEN'" action "createCharScreen:OnImportCharacterButtonClick()" } ---- .. _Infinity_GetFilesOfType: Infinity_GetFilesOfType ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns a list of files that match the specified file extension :: Infinity_GetFilesOfType(extension) **Parameters** * ``string`` *extension* - string containing file extension **Return Value** An array of filenames that matched the specified file extension **Notes** Converts extension to resource file type using the chExtToType function and fetches those filenames that match the resource type and stores them into an array. The following extensions are supported: * "bmp" * "mve" * "tga" * "wav" * "wfx" * "plt" * "bam" * "wed" * "chu" * "tis" * "spl" * "bcs" * "ids" * "cre" * "are" * "dlg" * "2da" * "gam" * "sto" * "wmp" * "chr" * "bs" * "eff" * "vvc" * "vef" * "pro" * "bio" * "wbm" * "gui" * "sql" * "pvrz" * "glsl" * "tot" * "toh" * "menu" * "lua" * "ttf" * "png" * "ini" **Example** :: bamfilelist = Infinity_GetFilesOfType("bam") ---- .. _Infinity_GetFrameCounter: Infinity_GetFrameCounter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns frame counter :: Infinity_GetFrameCounter() **Return Value** Returns an ``int`` value representing frame counter **Notes** Reads the value stored at offset ``0xC48`` of :ref:`CChitin`: :ref:`CChitin`.nAUCounter, converts it to a float and pushes it onto the lua stack. **Example** :: framcounter = Infinity_GetFrameCounter() ---- .. _Infinity_GetGameTicks: Infinity_GetGameTicks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns game ticks :: Infinity_GetGameTicks() **Return Value** Returns an ``int`` value representing game ticks **Notes** Reads :ref:`CBaldurChitin`.m_pObjectGame => :ref:`CInfGame`.m_worldTime => :ref:`CTimerWorld`.m_gameTime and multiplies it by the value stored in the variable ``TIMER_UPDATES_PER_SECOND``. The result is added together with itself, converted to a float and pushed onto the lua stack. The variable ``TIMER_UPDATES_PER_SECOND`` located at offset ``0x00938778`` is initially set to ``30`` (``0x1E``) **Example** :: ticks = Infinity_GetGameTicks() ---- .. _Infinity_GetGroundItemDescription: Infinity_GetGroundItemDescription ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns a string containing the item's description as seen on the ground :: Infinity_GetGroundItemDescription(item_index,slot_id,container_id) **Parameters** * *item_index* - * *slot_id* - * *container_id* - **Return Value** string **Notes** **Example** ---- .. _Infinity_GetGroupItemDescription: Infinity_GetGroupItemDescription ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_GetGroupItemDescription(item_index) **Parameters** * *item_index* - **Return Value** string **Notes** **Example** ---- .. _Infinity_GetInCutsceneMode: Infinity_GetInCutsceneMode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_GetInCutsceneMode(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_GetINIString: Infinity_GetINIString ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns a string containing an ini section key value :: Infinity_GetINIString(section_name,value_name,default_value) **Parameters** * *section_name* - section name in an ini file * *value_name* - the key in the section to return the value for * *default_value* - the default value to return if key does not exist **Return Value** ``string`` **Notes** **Example** ---- .. _Infinity_GetINIValue: Infinity_GetINIValue ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns an integer value containing an ini section key value :: Infinity_GetINIValue(section_name,value_name,default_value) **Parameters** * *section_name* - section name in an ini file * *value_name* - the key in the section to return the value for * *default_value* - the default value to return if key does not exist **Return Value** ``int`` **Notes** **Example** ---- .. _Infinity_GetListHeight: Infinity_GetListHeight ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the height of the sepcified UI List control :: Infinity_GetListHeight(list_name) **Parameters** * ``string`` *list_name* - name of the UI List control **Return Value** Returns an ``integer`` value of the specified list's height **Notes** **Example** Get the height of the ``worldPlayerDialogChoicesList`` list in ``UI.MENU``: :: local choicesHeight = Infinity_GetListHeight('worldPlayerDialogChoicesList') ---- .. _Infinity_GetMaxChapterPage: Infinity_GetMaxChapterPage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the chapter number that the game campaign is at currently :: Infinity_GetMaxChapterPage() **Return Value** Returns an ``integer`` containing the current chapter number **Notes** Returns the value of the ``CHAPTER`` token. Calls the :ref:`CVariableHash\:\:FindKey` method and reads offset ``0x28`` of :ref:`CVariable`: :ref:`CVariable`.m_cAreaVariable => :ref:`CAreaVariable`.m_intValue, and pushes that value to the lua stack. **Example** Used in the ``JOURNAL`` menu in ``UI.MENU`` to update the current chapter number: :: menu { name 'JOURNAL' align left top offset 80 0 ignoreEsc enabled "sidebarsGreyed ~= 1" onopen " reinitQuests() buildQuestDisplay() chapter = math.max(0,Infinity_GetMaxChapterPage()); ---- .. _Infinity_GetMaxGroundPage: Infinity_GetMaxGroundPage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns maximum ground pages :: Infinity_GetMaxGroundPage() **Return Value** Returns an ``integer`` value of the maximum ground pages **Notes** A ground page is a series of inventory slots representing ground items available to pick up or empty slots for items to be dropped into. Ground pages are used to scroll through the groupings of those ground based inventory slots. See also :ref:`Infinity_GetCurrentGroundPage` and :ref:`Infinity_GetGroundItemDescription` Calls the :ref:`CScreenInventory\:\:GetMaxGroundPage` method and pushed the value to the lua stack. **Example** :: local maxPages = Infinity_GetMaxGroundPage() ---- .. _Infinity_GetMenuArea: Infinity_GetMenuArea ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the bounding rectangle (area) for the specified UI Menu name :: Infinity_GetMenuArea(menu_name) **Parameters** * ``string`` *menu_name* - name of the UI Menu to return the bounding rectangle for **Return Value** Returns as ``integer`` values: x, y, w, h - x coordinate, y coordinate, width and height of rectangle **Notes** **Example** Get the area of the ``JOURNAL`` menu: :: local offsetX,offsetY,menuWidth,menuHeight = Infinity_GetMenuArea('JOURNAL') ---- .. _Infinity_GetMenuItemByName: Infinity_GetMenuItemByName ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the UI menu item that has the specified name :: Infinity_GetMenuItemByName(item_name) **Parameters** * ``string`` *item_name* - name of the menu item **Return Value** Returns userdata version of the menu item (a pointer to the :ref:`uiItem` structure of the matched UI control or a lua ``NIL``) **Notes** **Example** :: MenuItem_InvSlot1 = Infinity_GetMenuItemByName("slot_inv_1") ---- .. _Infinity_GetMousePosition: Infinity_GetMousePosition ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns mouse position :: Infinity_GetMousePosition() **Return Value** Returns as ``integer`` x,y = x coordinate and y cooordinate of mouse position **Notes** **Example** :: x,y = Infinity_GetMousePosition(); ---- .. _Infinity_GetNumCharacters: Infinity_GetNumCharacters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns total number of characters currently in the party :: Infinity_GetNumCharacters() **Return Value** Returns an ``integer`` value of the number of characters in the party **Notes** **Example** From ``UI.MENU`` - enable a portrait button for the 4th character, if there is greater than 3 characters in the party: :: button { area 11 290 64 90 portrait 3 bam GUIRSP10 enabled "Infinity_GetNumCharacters() > 3" ---- .. _Infinity_GetOffset: Infinity_GetOffset ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Get the position of a menu on the screen :: Infinity_GetOffset(menu_name) **Parameters** * ``string`` *menu_name* - name of the menu to return the position for **Return Value** Returns as ``integer`` values: x,y - x coordinate and y coordinate of the menu position **Notes** **Example** :: Infinity_GetOffset("JOURNAL") ---- .. _Infinity_GetOption: Infinity_GetOption ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Get the value of an option in a panel :: Infinity_GetOption(option_id,panel_id) **Parameters** * ``integer`` *option_id* - id of the option to get value for * ``integer`` *panel_id* - id of the panel **Return Value** Returns an ``integer`` value of the option id specified: *option_id* in *panel_id* **Notes** See also :ref:`Infinity_ChangeOption` **Example** Get the value of option id ``1`` in panel id ``8`` (``panelID`` = ``8``) to a variable ``ttDelaySLDR`` and then set option id ``1`` in panel id ``8`` (``panelID`` = ``8``) to the value of the ``ttDelaySLDR`` variable :: panelID = 8 ttDelaySLDR = Infinity_GetOption(1, panelID) Infinity_ChangeOption( 1, ttDelaySLDR, panelID) ---- .. _Infinity_GetPasswordRequired: Infinity_GetPasswordRequired ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Updates the ``passwordReq`` lua variable with the password requirement :: Infinity_GetPasswordRequired(id) **Parameters** * ``integer`` *id* - ``1`` based index of the ``mp_sessions`` array entry to update **Returns** Special, see notes **Notes** Updates an existing multidimensional array named ``mp_sessions`` defined in the EE game executable and an existing lua variable ``passwordReq``. ``passwordReq`` is defined in ``UI.MENU`` as: :: passwordReq = 0 Each entry in ``mp_sessions`` has the following elements: * ``description`` * ``flags`` * ``max_players`` * ``players`` * ``port`` * ``name`` * ``password`` After the ``mp_sessions`` array has been updated, the ``flags`` value (which contains amongst other things the password requirement) is placed into the ``passwordReq`` lua variable as a ``boolean`` value: ``1`` true or ``0`` false. **Example** The ``gameHasPassword`` function from ``UI.MENU``: :: function gameHasPassword(slot) if(mp_sessions[mp_shownSessions[slot]["actualIndex"]] == nil) then --if the session isn't loaded don't show anything. return "" end Infinity_GetPasswordRequired(mp_shownSessions[slot]["actualIndex"]) if passwordReq ~= 0 then ret = t("YES") else ret = t("NO") end return ret end ---- .. _Infinity_GetPortraitTooltip: Infinity_GetPortraitTooltip ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns a string containing the tooltip for a specified portrait index :: Infinity_GetPortraitTooltip(index) **Parameters** * ``integer`` *index* - a ``0`` based index of the portrait to return the tooltip text for **Return Value** Returns a ``string`` containing the tooltip for a specified portrait index **Notes** **Example** Get tooltip for portrait of character 1: :: char1tooltip = Infinity_GetPortraitTooltip(0) ---- .. _Infinity_GetScreenSize: Infinity_GetScreenSize ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the width and height of the screen - the screen resolution :: Infinity_GetScreenSize() **Return Value** Returns as ``integer``: w, h - width and height **Notes** **Example** :: local screenWidth, screenHeight = Infinity_GetScreenSize() ---- .. _Infinity_GetScriptVarInt: Infinity_GetScriptVarInt ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the value of a script variable as an ``integer`` :: Infinity_GetScriptVarInt(ScriptVar) **Parameters** * ``string`` *ScriptVar* - the script variable to return the value of **Return Value** Returns the value of a script variable as an ``integer`` **Notes** Calls the :ref:`CVariableHash\:\:FindKey` method. **Example** No known example ---- .. _Infinity_GetScrollIdentifyEnabled: Infinity_GetScrollIdentifyEnabled ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines if the specified item requires identification, and can be identified via an Indentify scroll :: Infinity_GetScrollIdentifyEnabled(item_id) **Parameters** * ``integer`` *item_id* - item id **Return Value** Returns a ``boolean`` value: ``1`` true, or ``0`` false **Notes** Calls the :ref:`CScreenInventory\:\:GetScrollIdentifyEnabled` method. See also :ref:`Infinity_GetSpellIdentifyEnabled` **Example** The Indentify via a scroll button is enabled if the item requires identification (and there is an Identify scroll in the character's possession). Defined in ``UI.MENU`` as: :: button { area 52 214 302 44 bam GUIOSTCL text style "button" text "SCROLL_BUTTON" clickable lua "Infinity_GetScrollIdentifyEnabled(characters[id].equipment[selectedSlot].id)" action " Infinity_OnScrollIdentify(characters[id].equipment[selectedSlot].id) Infinity_PopMenu() itemDesc.item = characters[id].equipment[selectedSlot].item --update itemDesc item " } ---- .. _Infinity_GetSelectedCharacterName: Infinity_GetSelectedCharacterName ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns a string containing the currently selected character's name :: Infinity_GetSelectedCharacterName() **Return Value** Returns a ``string`` containing the currently selected character's name **Notes** **Example** Set a label UI control's text with the current characters name: :: label { area 467 116 250 30 text lua "Infinity_GetSelectedCharacterName()" text style "label" align left center } ---- .. _Infinity_GetSpellIdentifyEnabled: Infinity_GetSpellIdentifyEnabled ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines if the specified item requires identification, and can be identified via an Indentify spell (or a magical item that can cast an Identify spell) :: Infinity_GetSpellIdentifyEnabled(item_id) **Parameters** * ``string`` *item_id* - item id **Return Value** Returns a ``boolean`` value: ``1`` true, or ``0`` false **Notes** Calls the :ref:`CScreenInventory\:\:GetSpellIdentifyEnabled` method. See also :ref:`Infinity_GetScrollIdentifyEnabled` **Example** The Indentify via a spell button is enabled if the item requires identification (and there is an Identify spell in the character's possession). Defined in ``UI.MENU`` as: :: button { area 52 258 302 44 bam GUIOSTCL text style "button" text "SPELL_BUTTON" clickable lua "Infinity_GetSpellIdentifyEnabled(characters[id].equipment[selectedSlot].id)" action " Infinity_OnSpellIdentify(characters[id].equipment[selectedSlot].id); Infinity_PopMenu() itemDesc.item = characters[id].equipment[selectedSlot].item --update itemDesc item " } ---- .. _Infinity_GetTimeString: Infinity_GetTimeString ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns a formatted date and time string :: Infinity_GetTimeString() **Return Value** Returns a ``string`` containing the date and time - a timestamp **Notes** Calls the :ref:`CTimerWorld\:\:GetCurrentTimeString` method. **Example** Editing a journal entry will automatically place a date time value, defined in ``UI.MENU`` as: :: label { enabled "journalMode == const.JOURNAL_MODE_EDIT" area 58 144 382 42 text style "label" text color 0 120 0 255 text lua "Infinity_GetTimeString()" } ---- .. _Infinity_GetTransitionInProgress: Infinity_GetTransitionInProgress ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the transition value :: Infinity_GetTransitionInProgress() **Parameters** None **Return Value** Pushes the ``transition`` variable value to the lua stack **Notes** ``transition`` variable located at offset ``0x00986720`` in BG2EE ``transition`` variable value set in :ref:`Infinity_TransitionMenu`, drawTop, and eventMenu functions **Example** No known examples ---- .. _Infinity_GetUseButtonText: Infinity_GetUseButtonText ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns "Use x" button text of an item name for an item specified :: Infinity_GetUseButtonText(item_id,mode) **Parameters** * ``integer`` *item_id* - item id * ``integer`` *mode* - mode **Return Value** Returns a ``string`` containing the "Use x" of the item specified **Notes** Calls the :ref:`CScreenInventory\:\:GetUseButtonText` method **Example** ---- .. _Infinity_GooglePlaySignedIn: Infinity_GooglePlaySignedIn ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Determines if signed into Google Play :: Infinity_GooglePlaySignedIn() **Return Value** Returns an ``integer`` value representing ``1`` true, or ``0`` false otherwise **Notes** Calls the CPlatform\:\:IsPlatformServiceConnected function Reads :ref:`CChitin`.cSteam => CSteam.m_isSteamConnected On builds that are not android returns ``false`` **Example** A Google Play sign in/out button from ``UI.MENU``: :: function getGooglePlaySignInText() if(Infinity_GooglePlaySignedIn() == 1) then return t("SIGN_OUT_BUTTON") else return t("SIGN_IN_BUTTON") end end ---- .. _Infinity_HighlightJournalButton: Infinity_HighlightJournalButton ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Unknown purpose :: Infinity_HighlightJournalButton() **Notes** Returns ``0`` false Called from highlightJournalButton function in ``UTIL.LUA`` **Example** See highlightJournalButton function in ``UTIL.LUA`` Unknown purpose ---- .. _Infinity_HoverMouseOver: Infinity_HoverMouseOver ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Moves where your mouse cursor is in the game world :: Infinity_HoverMouseOver(x,y) **Parameters** * ``integer`` *x* - x coordinate to click world at * ``integer`` *y* - y coordinate to click world at **Return Value** None **Notes** It doesn't actaully move the mouse cursor, but the game engine thinks it does. :ref:`Infinity_HoverMouseOver` will instantly move your mouse into the game world, but it won't move to the proper x,y for one frame (I think?). If you don't include :ref:`Infinity_HoverMouseOver` before :ref:`Infinity_ClickWorldAt`, it will click at world coordinates ``0``, ``0`` by assuming your cursor is over the interface. You can force a click in the game world like so: :: Infinity_HoverMouseOver(x,y) Infinity_ClickWorldAt(x,y) **Example** :: Infinity_HoverMouseOver(100,200) ---- .. _Infinity_HoverMouseOverObject: Infinity_HoverMouseOverObject ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Activate AI script file for object that mouse is hovering over (?) - not tested/verified :: Infinity_HoverMouseOverObject(objectname) **Parameters** * ``string`` *objectname* - name of the object **Return Value** ??? - Unknown **Notes** Calls the :ref:`CAIScriptFile\:\:CAIScriptFile` method **Example** No known examples ---- .. _Infinity_InstanceAnimation: Infinity_InstanceAnimation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Creates a temporary single instance animation of a bam, based on the UI template provided. Once the animation has finished, the UI control that was created and based on the UI template provided, is no longer present or visible. :: Infinity_InstanceAnimation(Template,BamResRef,x,y,w,h,list,list_index) **Parameters** * ``string`` *Template* - UI template name * ``string`` *BamResRef* - resource reference of bam to show/animate * ``integer`` *x* - left position * ``integer`` *y* - top position * ``integer`` *w* - width * ``integer`` *h* - height * ``string`` *list* - list/array * ``integer`` *list_index* - 1 based index of entry in *list* **Notes** As defined in ``UI.MENU`` on memorizing a spell: is set to play the default ``GAM_24.WAV`` sound and to play the ``FLASHBR.BAM`` animation. **Example** Shows sparkle as user clicks on mage spell to memorize: :: Infinity_InstanceAnimation("TEMPLATE_mageMemorizationSparkle","FLASHBR",x,y,w,h,fromList,listIndex) ---- .. _Infinity_IsItemEnabled: Infinity_IsItemEnabled ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_IsItemEnabled(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_IsMenuOnStack: Infinity_IsMenuOnStack ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_IsMenuOnStack(menu_name) **Parameters** * *menu_name* - **Return Value** ``bool`` **Notes** **Example** ---- .. _Infinity_IsPlayerMoving: Infinity_IsPlayerMoving ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_IsPlayerMoving(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_JoinMultiplayerGame: Infinity_JoinMultiplayerGame ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_JoinMultiplayerGame(id) **Notes** **Example** ---- .. _Infinity_LaunchURL: Infinity_LaunchURL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_LaunchURL(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_LevelUp: Infinity_LevelUp ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Opens level up dialog :: Infinity_LevelUp() **Parameters** None **Return Value** None **Notes** Calls :ref:`CScreenCharacter\:\:OnLevelUpButtonClick` to open the level up dialog. Unknown if calling this will work without specifying a character like :ref:`Infinity_ActivateRecord` does. **Example** No known examples ---- .. _Infinity_Log: Infinity_Log ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_Log(msg) **Parameters** * *msg* - **Notes** **Example** ---- .. _Infinity_LookAtObjectInWorld: Infinity_LookAtObjectInWorld ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_LookAtObjectInWorld(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_LuaConsoleInput: Infinity_LuaConsoleInput ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_LuaConsoleInput(???,???) **Parameters** * *???* - * *???* - **Notes** **Example** ---- .. _Infinity_OnAddUserEntry: Infinity_OnAddUserEntry ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnAddUserEntry(string) **Parameters** * *string* - **Notes** **Example** ---- .. _Infinity_OnCharacterImportItemSelect: Infinity_OnCharacterImportItemSelect ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnCharacterImportItemSelect(table_index) **Parameters** * *table_index* - **Notes** **Example** ---- .. _Infinity_OnCharacterItemSelect: Infinity_OnCharacterItemSelect ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnCharacterItemSelect(table_index) **Parameters** * *table_index* - **Notes** **Example** ---- .. _Infinity_OnEditUserEntry: Infinity_OnEditUserEntry ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnEditUserEntry(string1,string2) **Parameters** * *string1* - * *string2* - **Return Value** ??? **Notes** **Example** ---- .. _Infinity_OnGroundPage: Infinity_OnGroundPage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnGroundPage(increment) **Parameters** * *increment* - **Notes** **Example** ---- .. _Infinity_OnPortraitDblClick: Infinity_OnPortraitDblClick ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Event action when mouse double clicks a character portrait :: Infinity_OnPortraitDblClick(index) **Parameters** * *index* - index of portrait being double clicked **Notes** **Example** ---- .. _Infinity_OnPortraitItemSelect: Infinity_OnPortraitItemSelect ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Event action when character portrait is selected :: Infinity_OnPortraitItemSelect(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_OnPortraitLClick: Infinity_OnPortraitLClick ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Event action when mouse left clicks a character portrait :: Infinity_OnPortraitLClick(index) **Parameters** * *index* - index of portrait being clicked **Notes** **Example** ---- .. _Infinity_OnPortraitRClick: Infinity_OnPortraitRClick ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Event action when mouse right clicks a character portrait :: Infinity_OnPortraitRClick(index) **Parameters** * *index* - index of portrait being clicked **Notes** **Example** ---- .. _Infinity_OnRemoveUserEntry: Infinity_OnRemoveUserEntry ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnRemoveUserEntry(string) **Parameters** * *string* - **Notes** **Example** ---- .. _Infinity_OnRest: Infinity_OnRest ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnRest(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_OnScriptItemSelect: Infinity_OnScriptItemSelect ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnScriptItemSelect(table_index) **Parameters** * *table_index* - **Notes** **Example** ---- .. _Infinity_OnScrollIdentify: Infinity_OnScrollIdentify ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Event action when a scroll identifies an item :: Infinity_OnScrollIdentify(item_id) **Parameters** * ``integer`` *item_id* - id of the item being identified **Notes** **Example** ---- .. _Infinity_OnSoundItemSelect: Infinity_OnSoundItemSelect ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnSoundItemSelect(table_index) **Parameters** * *table_index* - **Notes** **Example** ---- .. _Infinity_OnSpellIdentify: Infinity_OnSpellIdentify ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Event action when a spell identifies an item :: Infinity_OnSpellIdentify(item_id) **Parameters** * ``integer`` *item_id* - id of the item being identified **Return Value** **Notes** **Example** ---- .. _Infinity_OnUseButtonClick: Infinity_OnUseButtonClick ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OnUseButtonClick(item_id,mode) **Parameters** * ``integer`` *item_id* - * *mode* - **Notes** **Example** ---- .. _Infinity_OpenInventoryContainer: Infinity_OpenInventoryContainer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_OpenInventoryContainer(resref) **Parameters** * resref* - resource reference of the container being opened **Notes** **Example** ---- .. _Infinity_PlayMovie: Infinity_PlayMovie ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Plays a movie (a WebM file format) :: Infinity_PlayMovie(movie_name,element_name) **Parameters** * *movie_name* - resource reference of the movie to play * *element_name* - **Notes** **Example** ---- .. _Infinity_PlaySound: Infinity_PlaySound ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Plays a sound :: Infinity_PlaySound(resref) **Parameters** * resref* - resource reference of the sound to play **Notes** **Example** ---- .. _Infinity_PopMenu: Infinity_PopMenu ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_PopMenu(menu_name) **Parameters** * *menu_name* - **Notes** **Example** ---- .. _Infinity_PressKeyboardButton: Infinity_PressKeyboardButton ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_PressKeyboardButton(???) **Parameters** (???) **Return Value** (???) **Notes** **Example** ---- .. _Infinity_PushMenu: Infinity_PushMenu ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_PushMenu(menu_name) **Parameters** * *menu_name* - **Notes** **Example** ---- .. _Infinity_RandomNumber: Infinity_RandomNumber ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns an random number :: Infinity_RandomNumber(min,range) **Parameters** * *min* - minimum value of random number * *range* - maximum value of random number **Return Value** ``int`` **Notes** **Example** ---- .. _Infinity_RemoveINIEntry: Infinity_RemoveINIEntry ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Removes an ini section key value :: Infinity_RemoveINIEntry(section_name,value_name) **Parameters** * section_name* - ini section name * value_name* - key in the ini section to remove **Notes** **Example** ---- .. _Infinity_RequestMultiplayerGameDetails: Infinity_RequestMultiplayerGameDetails ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_RequestMultiplayerGameDetails(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_ScaleToText: Infinity_ScaleToText ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_ScaleToText(element_name) **Parameters** * *element_name* - **Notes** **Example** ---- .. _Infinity_ScrollLists: Infinity_ScrollLists ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_ScrollLists(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SelectDialogueOption: Infinity_SelectDialogueOption ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SelectDialogueOption(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SelectItemAbility: Infinity_SelectItemAbility ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SelectItemAbility(ability_index,item_num,item_id) **Parameters** * *ability_index* - * *item_num* - * ``integer`` *item_id* - **Notes** **Example** ---- .. _Infinity_SelectListItem: Infinity_SelectListItem ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SelectListItem(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SendChatMessage: Infinity_SendChatMessage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SendChatMessage(msg,boolean) **Parameters** * *msg* - * *boolean* - **Notes** **Example** ---- .. _Infinity_SetArea: Infinity_SetArea ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetArea(element_name,x,y,w,h) **Parameters** * *element_name* - * *x* - * *y* - * *w* - * *h* - **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SetBackground: Infinity_SetBackground ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetBackground(menu_name) **Parameters** * *menu_name* - **Notes** **Example** ---- .. _Infinity_SetCloudEnabled: Infinity_SetCloudEnabled ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetCloudEnabled(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SetGooglePlaySigninState: Infinity_SetGooglePlaySigninState ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetGooglePlaySigninState(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SetHairColor: Infinity_SetHairColor ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetHairColor(index) **Parameters** * *index* - **Notes** **Example** ---- .. _Infinity_SetHighlightColors: Infinity_SetHighlightColors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set a color or color gradient for UI elements in the options dialogs that are currently selected :: Infinity_SetHighlightColors(lr,lg,lb,la,cr,cg,cb,ca,rr,rg,rb,ra) **Parameters** * ``hexidecimal`` *lr* - left color: the intensity of the red color channel * ``hexidecimal`` *lg* - left color: the intensity of the green color channel * ``hexidecimal`` *lb* - left color: the intensity of the blue color channel * ``hexidecimal`` *la* - left color: the transparency level of the alpha channel * ``hexidecimal`` *cr* - center color: the intensity of the red color channel * ``hexidecimal`` *cg* - center color: the intensity of the green color channel * ``hexidecimal`` *cb* - center color: the intensity of the blue color channel * ``hexidecimal`` *ca* - center color: the transparency level of the alpha channel * ``hexidecimal`` *rr* - right color: the intensity of the red color channel * ``hexidecimal`` *rg* - right color: the intensity of the green color channel * ``hexidecimal`` *rb* - right color: the intensity of the blue color channel * ``hexidecimal`` *ra* - right color: the transparency level of the alpha channel **Notes** User three color definitions: left, center and right Parameters use **hexidecimal** values (prefixed with ``0x``) for each color color and the alpha channel level **Example** Infinity_SetHighlightColors(0x7F,0x00,0x7F,0xff, 0x00,0x7F,0x00,0xff, 0x00,0x00,0x7F,0xff) ---- .. _Infinity_SetINIValue: Infinity_SetINIValue ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Sets a value of an ini section key :: Infinity_SetINIValue(section_name,value_name,value) **Parameters** * ``string`` *section_name* - ini section to set the key value for * ``string`` *value_name* - the key in the ini section to set the value for * ``string`` *value* - the new value of the key **Notes** **Example** Set the ``Player Name`` key in ``Multiplayer`` section to the value of the variable ``connectionPlayerNameEdit`` :: if connectionPlayerNameEdit == "" then connectionPlayerNameEdit = Infinity_GetINIString('Multiplayer', 'Player Name', player) Infinity_SetINIValue('Multiplayer', 'Player Name', connectionPlayerNameEdit) end ---- .. _Infinity_SetKey: Infinity_SetKey ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Sets key in C++ memory :: Infinity_SetKey(value,type) **Parameters** * *value* - * *type* - **Notes** **Example** ---- .. _Infinity_SetLanguage: Infinity_SetLanguage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetLanguage(lang_id,showSubTitles) **Parameters** * *lang_id* - * *showSubTitles* - **Notes** **Example** ---- .. _Infinity_SetMajorColor: Infinity_SetMajorColor ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetMajorColor(index) **Parameters** * *index* - **Notes** **Example** ---- .. _Infinity_SetMinorColor: Infinity_SetMinorColor ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetMinorColor(index) **Parameters** * *index* - **Notes** **Example** ---- .. _Infinity_SetOffset: Infinity_SetOffset ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetOffset(menu_name,x,y) **Parameters** * *menu_name* - * *x* - * *y* - **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SetOverlay: Infinity_SetOverlay ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetOverlay(menu_name) **Parameters** * *menu_name* - **Notes** **Example** ---- .. _Infinity_SetScreenSize: Infinity_SetScreenSize ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetScreenSize(w,h) **Parameters** * *w* - * *h* - **Notes** **Example** ---- .. _Infinity_SetScrollTop: Infinity_SetScrollTop ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetScrollTop(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SetSkinColor: Infinity_SetSkinColor ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetSkinColor(index) **Parameters** * *index* - **Notes** **Example** ---- .. _Infinity_SetToken: Infinity_SetToken ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SetToken(token_name,value) **Parameters** * *token_name* - * *value* - **Notes** **Example** ---- .. _Infinity_ShutdownGame: Infinity_ShutdownGame ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_ShutdownGame() **Notes** **Example** ---- .. _Infinity_SignInOutButtonEnabled: Infinity_SignInOutButtonEnabled ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SignInOutButtonEnabled(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SplitItemStack: Infinity_SplitItemStack ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SplitItemStack(item_id,count,slot_name) **Parameters** * ``integer`` *item_id* - * *count* - * *slot_name* - **Return Value** **Notes** **Example** ---- .. _Infinity_StartItemCapture: Infinity_StartItemCapture ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_StartItemCapture(map_name) **Parameters** * *map_name* - **Notes** **Example** ---- .. _Infinity_StartKeybind: Infinity_StartKeybind ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_StartKeybind(action) **Parameters** * *action* - **Notes** **Example** ---- .. _Infinity_StopItemCapture: Infinity_StopItemCapture ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_StopItemCapture(map_name) **Parameters** * *map_name* - **Notes** **Example** ---- .. _Infinity_StopKeybind: Infinity_StopKeybind ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_StopKeybind() **Notes** **Example** ---- .. _Infinity_StopMovie: Infinity_StopMovie ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_StopMovie(element_name) **Parameters** * *element_name* - **Notes** **Example** ---- .. _Infinity_SwapSlot: Infinity_SwapSlot ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SwapSlot(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_SwapWithAppearance: Infinity_SwapWithAppearance ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SwapWithAppearance() **Notes** **Example** ---- .. _Infinity_SwapWithPortrait: Infinity_SwapWithPortrait ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_SwapWithPortrait(index) **Parameters** * *index* - **Notes** **Example** ---- .. _Infinity_TakeScreenshot: Infinity_TakeScreenshot ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_TakeScreenshot() **Notes** **Example** ---- .. _Infinity_TextEditHasFocus: Infinity_TextEditHasFocus ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_TextEditHasFocus() **Return Value** ``bool`` **Notes** **Example** ---- .. _Infinity_TransitionMenu: Infinity_TransitionMenu ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_TransitionMenu(menu_name) **Parameters** * *menu_name* - **Notes** **Example** ---- .. _Infinity_UpdateCharacterRecordExportPanel: Infinity_UpdateCharacterRecordExportPanel ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_UpdateCharacterRecordExportPanel() **Notes** **Example** ---- .. _Infinity_UpdateCloudSaveState: Infinity_UpdateCloudSaveState ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_UpdateCloudSaveState() **Notes** **Example** ---- .. _Infinity_UpdateInventoryRequesterPanel: Infinity_UpdateInventoryRequesterPanel ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_UpdateInventoryRequesterPanel(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_UpdateLuaStats: Infinity_UpdateLuaStats ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_UpdateLuaStats() **Notes** **Example** ---- .. _Infinity_UpdateStoreMainPanel: Infinity_UpdateStoreMainPanel ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_UpdateStoreMainPanel(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_UpdateStoreRequesterPanel: Infinity_UpdateStoreRequesterPanel ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: Infinity_UpdateStoreRequesterPanel(???) **Parameters** ??? **Return Value** ??? **Notes** **Example** ---- .. _Infinity_WriteINILine: Infinity_WriteINILine ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Write a line of text to an ini file :: Infinity_WriteINILine(file_handle,string) **Parameters** * *file_handle* - * *string* - text to write out to ini file **Notes** **Example**